The present invention relates to a technology for enabling functional allocation to each component (such as an operation button or a key) of an operating section in an information processing apparatus so that, for instance, an operation assigned to the component can easily be enabled or disenabled.
There has been known the configuration of a liquid crystal display unit provided in a portable type of terminal device in which, for instance, a display mode for a portrait screen and that for a landscape screen can freely be selected to provide the improved operability or convenience in use of the display unit (Refer to, for instance, Japanese Patent Laid-Open No. 2003-232549). With this configuration, the operability can be improved by changing functional assignment to each operation key according to a selected display mode.
Various types of keys and switches (such as right, left, and middle buttons on a pointing device for operating a pointer on a display screen or other special keys) provided in an information processing apparatus are directly connected to devices for controlling the keys and switches respectively.
FIG. 10 illustrates a general layered structure in hardware configuration as well as in software configuration for operation and input processes.
Operation buttons “A-1”, “A-2”, or “B-1”, “B-2” and the like are positioned as a plurality of operation buttons (hardware keys not including button objects for software processing) in the bottom layer of the hardware configuration, and devices “Device A”, “Device B” and the like using the buttons respectively are positioned in the layer just above. It is assumed herein that the operation buttons “A-1”, “A-2” are used in the device “Device A”, and the buttons “B-1”, “B-2” and the like are used in the device “Device B”.
In the software configuration, there are a driver layer, an OS “Operating System” layer, and an application layer in succession from the bottom to the top, and device drivers “Device drive A”, “Device driver B” and the like are provided in the driver layer. The “Device driver A” is a device driver for the device “Device A” above, and the “Device driver B” is a device driver for the device “Device B” above.
In the application layer above the OS layer, “applications “App1”, “App2” and the like are positioned, and a program process or an operation is performed in response to operational information provided by a user using any of the operation keys described above. The operational information inputted via the operation button is delivered from a device corresponding to the operation button to other driver, and further is converted in the OS layer and reported as data (message) having a format appreciable for each application to the corresponding application.
When a function assigned to each operation button is always kept unchanged, it is required only to use code or a message corresponding to an operation of each operation button, but when it is necessary to change assignment of a function to each operation button, namely, for instance, when key assigns to the operation button “A-1” and to the operation button “B-1” are to be changed, the method as described below may be employed.
(1) Method in which the operation button “A-1” is read as “B-1” in the applications (App1, App2, and the like) using the operation buttons.
(2) Method in which a process assigned to an operation button is made virtual by interpreting meaning of the input with the operation buttons “A-1” and “B-1” in the OS layer and the interpreted contents is notified to the upper layer (application layer).
(3) Method in which input/output of other device is hooked in the driver layer, and an output from the operation button “A-1” is replaced with an output from the operation button “B-1”, and also an output from the operation button “B-1” is replaced with an output from the operation button “A-1”.
With the methods based on the conventional technology as described above, the processing required for changing functional assignment to operation buttons, operation keys, and switches becomes disadvantageously complicated. Namely, for changing the functional assignment, at least one, or a plurality of modules are required to be changed in the OS layer, driver layer, and application layer. When a change in functional assignment to an operation button or the like involves a plurality of devices, it is required to change a plurality of modules in each of the OS layer, driver layer, and application layer, which is extremely complicated.
For instance, when the method (1) above is employed, a process routine for interpreting an instruction from each operation button with different meaning is required each time an application (App1, App2, and the like) is developed, which leads to increase in cost for application development.
When the method (2) is employed, change or modification of the operating system is required, so that a large scale change may be required or sometimes a problem relating to convertibility may occur. Namely, this method is acceptable for a manufacturer developing an OS itself, but when a user uses an OS developed by a third party vendor and commercially available from the market, the user is required to request addition of specifications for changing the OS to the manufacturer of the OS (which also result in generation of additional development cost). Further a change in specifications of an OS sometimes involves a change of a device driver, and therefore when a change in specifications involving a plurality of layers is required, works such as debugging become extremely difficult.
When the embodiment (3) is employed, a device driver for a device (for instance, “Device A”) hooks an output from other device (for instance, “Device B”), a developer of the driver for “Device A” is required also to know specifications of the “Device B”, and similarly a developer of the driver for the “Device B” is required also to know specifications of the “Device A” (which requires increase in load for development). Namely, when a plurality of driver vendors develop different device drivers respectively, the vendors are required to disclose specifications of the products developed by each vendor. Further when a button to which the functional assignment is to be changed is used by multiple devices, development of drivers becomes further complicated (which leads to increase in time and cost for development with the possibility of generation of bugs becoming higher, and in that case also the debugging work and the like become very difficult).
As described above, in the devices based on the conventional technology, there is not provided any scheme for enabling each change in functional assignment to each operation button or key or for enabling or disabling an operation input, or the control or processes required for achieving the purpose as described above is disadvantageously complicated.